<TeXmacs|2.1>

<style|<tuple|tmmanual|british|doc>>

<\body>
  <doc-data|<doc-title|Scheme-GNUnet (0.2)
  manual>|<doc-author|<author-data|<author-name|Maxime
  Devos>|<author-email|maximedevos@telenet.be>>>>

  Copyright \<#A9\> 2012-2016, 2021, 2022 GNUnet e.V.

  Permission is granted to copy, distribute and/or modify this document under
  the terms of the GNU Free Documentation License, Version 1.3 or any later
  version published by the Free Software Foundation; \ with no Invariant
  Sections, no Front-Cover Texts, and no Back-Cover Texts.<space|1em>A copy
  of the license is included in the section entitled \<#2018\>GNU Free
  Documentation License\<#2019\>.

  \;

  <\table-of-contents|toc>
    <vspace*|1fn><with|font-series|bold|math-font-series|bold|font-shape|small-caps|1.<space|2spc>Installation
    and contributing guide> <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <pageref|auto-1><vspace|0.5fn>

    1.1.<space|2spc>Building from source <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-2>

    <with|par-left|1tab|1.1.1.<space|2spc>Authenticating new source code
    <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-4>>

    1.2.<space|2spc>Writing tests <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-6>

    1.3.<space|2spc>Contact <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-8>

    1.4.<space|2spc>License <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-9>

    <vspace*|1fn><with|font-series|bold|math-font-series|bold|font-shape|small-caps|2.<space|2spc>Application
    guide> <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <pageref|auto-10><vspace|0.5fn>

    <vspace*|1fn><with|font-series|bold|math-font-series|bold|font-shape|small-caps|3.<space|2spc>Concurrency>
    <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <pageref|auto-11><vspace|0.5fn>

    <with|par-left|4tab|Repeated conditions
    <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-12><vspace|0.15fn>>

    <vspace*|1fn><with|font-series|bold|math-font-series|bold|font-shape|small-caps|4.<space|2spc>Configuration>
    <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <pageref|auto-13><vspace|0.5fn>

    4.1.<space|2spc>Locating configuration files
    <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-22>

    4.2.<space|2spc>Loading configuration files
    <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-30>

    <vspace*|1fn><with|font-series|bold|math-font-series|bold|font-shape|small-caps|5.<space|2spc>Manipulation
    of network structures> <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <pageref|auto-35><vspace|0.5fn>

    5.1.<space|2spc>Documentation <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-41>

    5.2.<space|2spc>Reading and writing <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-45>

    5.3.<space|2spc>Primitive types <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-50>

    5.4.<space|2spc>Packing <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-51>

    <vspace*|1fn><with|font-series|bold|math-font-series|bold|font-shape|small-caps|6.<space|2spc>Communication
    with services> <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <pageref|auto-52><vspace|0.5fn>

    6.1.<space|2spc>Asynchronuously connecting
    <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-56>

    6.2.<space|2spc>Message handler <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-60>

    6.3.<space|2spc>Message type database
    <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-68>

    6.4.<space|2spc>Error handler <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-74>

    6.5.<space|2spc>Ordering of injected errors and messages and sent
    messages <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-85>

    6.6.<space|2spc>Disconnecting <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-86>

    6.7.<space|2spc>Error reporting <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-90>

    <vspace*|1fn><with|font-series|bold|math-font-series|bold|font-shape|small-caps|7.<space|2spc>Estimation
    of the size of the network> <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <pageref|auto-96><vspace|0.5fn>

    <vspace*|1fn><with|font-series|bold|math-font-series|bold|font-shape|small-caps|8.<space|2spc>Accessing
    the DHT> <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <pageref|auto-111><vspace|0.5fn>

    8.1.<space|2spc>Data in the DHT <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-120>

    8.2.<space|2spc>Accessing data in the DHT
    <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-152>

    8.3.<space|2spc>Constructing and analysing network messages
    <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-162>

    8.4.<space|2spc>How to handle invalid data
    <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-178>

    8.5.<space|2spc>Monitoring: spying on what other applications and peers
    are doing <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-179>

    <vspace*|1fn><with|font-series|bold|math-font-series|bold|font-shape|small-caps|9.<space|2spc>Cryptography>
    <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <pageref|auto-180><vspace|0.5fn>

    <vspace*|1fn><with|font-series|bold|math-font-series|bold|font-shape|small-caps|Appendix
    A.<space|2spc>GNU Free Documentation License>
    <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <pageref|auto-184><vspace|0.5fn>

    0. <with|font-shape|small-caps|Preamble>
    <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-185>

    1. <with|font-shape|small-caps|Applicability and definitions>
    <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-186>

    2. <with|font-shape|small-caps|Verbatim copying>
    <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-187>

    3. <with|font-shape|small-caps|Copying in quantity>
    <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-188>

    4. <with|font-shape|small-caps|Modifications>
    <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-189>

    5. <with|font-shape|small-caps|Combining documents>
    <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-190>

    6. <with|font-shape|small-caps|Collections of documents>
    <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-191>

    7. <with|font-shape|small-caps|Aggregation with independent works>
    <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-192>

    8. <with|font-shape|small-caps|Translation>
    <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-193>

    9. <with|font-shape|small-caps|Termination>
    <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-194>

    10. <with|font-shape|small-caps|Future revisions of this license>
    <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-195>

    11. <with|font-shape|small-caps|Relicensing>
    <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-196>

    <with|font-shape|small-caps|Addendum>: How to use this License for your
    documents <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <no-break><pageref|auto-197>

    <vspace*|1fn><with|font-series|bold|math-font-series|bold|font-shape|small-caps|Index>
    <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
    <pageref|auto-198><vspace|0.5fn>
  </table-of-contents>

  <chapter|Installation and contributing guide>

  <include|contributing.tm>

  <chapter|Application guide>

  Scheme-GNUnet doesn't have any example applications, except the half-baked
  <verbatim|examples/web.scm>, <verbatim|gnu/gnunet/scripts/download-store.scm>
  and <verbatim|gnu/gnunet/scripts/publish-store.scm>.<space|1em>Over time,
  we hope we have something to write here, but for now, this chapter is
  empty.

  <chapter|Concurrency>

  <include|concurrency.tm>

  <chapter|Configuration>

  <include|configuration.tm>

  <chapter|Manipulation of network structures>

  <include|network-structures.tm>

  <chapter|Communication with services>

  <include|service-communication.tm>

  <chapter|Estimation of the size of the network>

  <include|network-size-estimation.tm>

  <chapter|Accessing the DHT>

  <include|distributed-hash-table.tm>

  <chapter|Communication between peers>

  <include|cadet.tm>

  <chapter|Cryptography>

  The module <scm|(gnu gnunet crypto)><index|(gnu gnunet crypto)> has a few
  small wrappers around procedures from Guile-Gcrypt for performing
  cryptography on bytevector slices.

  <\explain>
    <scm|(hash/sha512! <var|slice> <var|to>)><index|hash/sha512!>
  </explain|Compute the SHA-512 hash of <var|slice>, a readable bytevector
  slice of arbitrary length, and write it to <var|to>, a writable bytevector
  slice of length 512 bits / 64 bytes.<space|1em>The result is unspecified if
  <var|slice> and <var|to> overlap.>

  <\explain>
    <scm|(hash/sha512 <var|slice>)><index|hash/sha512>
  <|explain>
    Like <scm|hash/sha512!>, but allocate the <var|>destination slice
    <var|to> and return it.
  </explain>

  <appendix|GNU Free Documentation License>

  <include|fdl.tm>

  <\the-index|idx>
    <index+1|analyse-client-get|<pageref|auto-172>>

    <index+1|analyse-client-put|<pageref|auto-174>>

    <index+1|analyse-client-result|<pageref|auto-176>>

    <index+1|analysis procedures|<pageref|auto-164>>

    <index+1|authentication|<pageref|auto-5>>

    <index+1|close-queue!|<pageref|auto-88>>

    <index+1|~/.config/gnunet.conf|<pageref|auto-27>>

    <index+1|configuration|<pageref|auto-14>>

    <index+2|configuration|system|<pageref|auto-24>>

    <index+2|configuration|user|<pageref|auto-23>>

    <index+1*|connect>

    <index+2|connect|DHT|<pageref|auto-118>>

    <index+2|connect|NSE|<pageref|auto-100>>

    <index+1|connect/fibers|<pageref|auto-54>>

    <index+1|connecting to services|<pageref|auto-57>>

    <index+1|connection:connected|<pageref|auto-59>, <pageref|auto-78>>

    <index+1|connection:interrupted|<pageref|auto-79>, <pageref|auto-89>>

    <index+1|construct-client-get|<pageref|auto-166>>

    <index+1|construct-client-put|<pageref|auto-168>>

    <index+1|construct-client-result|<pageref|auto-170>>

    <index+1|construction procedures|<pageref|auto-165>>

    <index+1|copy-datum|<pageref|auto-159>>

    <index+1|copy-insertion|<pageref|auto-160>>

    <index+1|copy-query|<pageref|auto-158>>

    <index+1|copy-search-result|<pageref|auto-161>>

    <index+1|datum?|<pageref|auto-129>>

    <index+1|datum object|<pageref|auto-121>>

    <index+1|datum-expiration|<pageref|auto-128>>

    <index+1|datum-\<gtr\>insertion|<pageref|auto-132>>

    <index+1|datum-\<gtr\>search-result|<pageref|auto-141>>

    <index+1|datum-key|<pageref|auto-126>>

    <index+1|datum-value|<pageref|auto-127>>

    <index+1|define-type|<pageref|auto-38>>

    <index+1|DHT server object|<pageref|auto-116>>

    <index+1|DHT|<pageref|auto-113>>

    <index+1|/dht:path-element|<pageref|auto-144>>

    <index+1*|disconnect!>

    <index+2|disconnect!|DHT|<pageref|auto-119>>

    <index+2|disconnect!|NSE|<pageref|auto-106>>

    <index+1|disconnecting|<pageref|auto-87>>

    <index+1|distributed hash table|<pageref|auto-112>>

    <index+1|documentation|<pageref|auto-43>>

    <index+1|error handler|<pageref|auto-75>>

    <index+1|error reporting|<pageref|auto-91>>

    <index+1|error-handler|<pageref|auto-58>>

    <index+1|error-reporter|<pageref|auto-95>>

    <index+1|estimate|<pageref|auto-105>>

    <index+1|estimate object|<pageref|auto-104>>

    <index+1|estimate:logarithmic-number-peers|<pageref|auto-107>>

    <index+1|estimate:number-peeers|<pageref|auto-108>>

    <index+1|estimate:standard-deviation|<pageref|auto-110>>

    <index+1|estimate:timestamp|<pageref|auto-109>>

    <index+1|/etc/gnunet.conf|<pageref|auto-29>>

    <index+1|get path|<pageref|auto-146>>

    <index+1|(gnu extractor enum)|<pageref|auto-72>>

    <index+1|(gnu gnunet config db)|<pageref|auto-15>>

    <index+1|(gnu gnunet config fs)|<pageref|auto-25>>

    <index+1|(gnu gnunet crypto)|<pageref|auto-181>>

    <index+1|(gnu gnunet dht client)|<pageref|auto-115>>

    <index+1|(gnu gnunet dht network)|<pageref|auto-163>>

    <index+1|(gnu gnunet message protocols)|<pageref|auto-70>>

    <index+1|(gnu gnunet mq error-reporting)|<pageref|auto-92>>

    <index+1|(gnu gnunet mq-impl stream)|<pageref|auto-55>>

    <index+1|(gnu gnunet nse client)|<pageref|auto-99>>

    <index+1|Guix|<pageref|auto-3>>

    <index+1|handler procedure|<pageref|auto-67>>

    <index+1|hash-\<gtr\>configuration|<pageref|auto-16>>

    <index+1|hash-key|<pageref|auto-17>>

    <index+1|hash/sha512!|<pageref|auto-182>>

    <index+1|hash/sha512|<pageref|auto-183>>

    <index+1|inject-error!|<pageref|auto-76>>

    <index+1|input:overly-small|<pageref|auto-82>>

    <index+1|input:premature-end-of-file|<pageref|auto-81>>

    <index+1|input:regular-end-of-file|<pageref|auto-80>>

    <index+1|inserting data into the DHT|<pageref|auto-154>>

    <index+1|insertion?|<pageref|auto-135>>

    <index+1|insertion object|<pageref|auto-122>>

    <index+1|insertion-desired-replication-level|<pageref|auto-134>>

    <index+1|insertion-\<gtr\>datum|<pageref|auto-133>>

    <index+1|interposer|<pageref|auto-65>>

    <index+1|key=?|<pageref|auto-18>>

    <index+1|key|<pageref|auto-77>>

    <index+1|load-configuration|<pageref|auto-34>>

    <index+1|load-configuration/port!|<pageref|auto-31>>

    <index+1|locate-system-configuration|<pageref|auto-28>>

    <index+1|locate-user-configuration|<pageref|auto-26>>

    <index+1|logic:ill-formed|<pageref|auto-84>>

    <index+1|logic:no-handler|<pageref|auto-83>>

    <index+1|make-datum|<pageref|auto-125>>

    <index+1|make-expanded-configuration|<pageref|auto-33>>

    <index+1|make-message-handler|<pageref|auto-63>>

    <index+1|make-query|<pageref|auto-136>>

    <index+1|&malformed-path|<pageref|auto-151>>

    <index+1|%max-datum-value-length|<pageref|auto-130>>

    <index+1|message handler|<pageref|auto-61>>

    <index+1*|message type>

    <index+2|message type|database|<pageref|auto-69>>

    <index+2|message type|of handler|<pageref|auto-64>>

    <index+1|message-handler|<pageref|auto-62>>

    <index+1|/:msg:dht:client:get|<pageref|auto-167>>

    <index+1|/:msg:dht:client:put|<pageref|auto-169>\U<pageref|auto-175>>

    <index+1|/:msg:dht:client:result|<pageref|auto-171>\U<pageref|auto-177>>

    <index+1|netstruct|<pageref|auto-37>>

    <index+1|network size estimation|<pageref|auto-97>>

    <index+1|network structure|<pageref|auto-36>>

    <index+1|NSE server object|<pageref|auto-101>>

    <index+1|NSE|<pageref|auto-98>>

    <index+1|&overly-large-datum|<pageref|auto-131>>

    <index+1|&overly-large-paths|<pageref|auto-150>>

    <index+1|path element|<pageref|auto-145>>

    <index+1|properties|<pageref|auto-44>>

    <index+1|put!|<pageref|auto-157>>

    <index+1|put path|<pageref|auto-147>>

    <index+1|query?|<pageref|auto-140>>

    <index+1|query object|<pageref|auto-123>>

    <index+1|query-desired-replication-level|<pageref|auto-139>>

    <index+1|query-key|<pageref|auto-138>>

    <index+1|query-type|<pageref|auto-137>>

    <index+1|R5N|<pageref|auto-114>>

    <index+1|read%|<pageref|auto-46>>

    <index+1|read-value|<pageref|auto-20>>

    <index+1|report-error|<pageref|auto-93>>

    <index+1|search object|<pageref|auto-156>>

    <index+1|search result object|<pageref|auto-124>>

    <index+1|searching the DHT|<pageref|auto-153>>

    <index+1|search-result?|<pageref|auto-143>>

    <index+1|search-result-get-path|<pageref|auto-148>>

    <index+1|search-result-\<gtr\>datum|<pageref|auto-142>>

    <index+1|search-result-put-path|<pageref|auto-149>>

    <index+1|select|<pageref|auto-49>>

    <index+1*|server object>

    <index+2|server object|DHT|<pageref|auto-117>>

    <index+2|server object|NSE|<pageref|auto-102>>

    <index+1|services|<pageref|auto-53>>

    <index+1|set%!|<pageref|auto-47>>

    <index+1|set-value!|<pageref|auto-19>>

    <index+1|sizeof|<pageref|auto-48>>

    <index+1|start-get!|<pageref|auto-155>>

    <index+1|structure/packed|<pageref|auto-39>>

    <index+1|symbol-value|<pageref|auto-71>>

    <index+1|synopsis|<pageref|auto-42>>

    <index+1|tests|<pageref|auto-7>>

    <index+1|textual-error-reporting-port|<pageref|auto-94>>

    <index+1|&undefined-key-error|<pageref|auto-21>>

    <index+1|update procedure|<pageref|auto-103>>

    <index+1|value-\<gtr\>index|<pageref|auto-73>>

    <index+1|variable assignment|<pageref|auto-32>>

    <index+1|verifier|<pageref|auto-66>>
  </the-index>
</body>

<\initial>
  <\collection>
    <associate|page-medium|paper>
    <associate|project-flag|true>
    <associate|save-aux|false>
  </collection>
</initial>